/* Processed by ecpg (regression mode) */
/* These include files are added by the preprocessor */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* End of automatic include section */
#define ECPGdebug(X, Y) ECPGdebug((X) + 100, (Y))

#line 1 "insupd.pgc"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#line 1 "regression.h"

#line 5 "insupd.pgc"

int main()
{
    /* exec sql begin declare section */

#line 9 "insupd.pgc"
    int i1[3], i2[3], i3[3], i4;
/* exec sql end declare section */
#line 10 "insupd.pgc"

    ECPGdebug(1, stderr);
    {
        ECPGconnect(__LINE__, 0, "regress1", NULL, NULL, NULL, 0);
    }
#line 13 "insupd.pgc"

    /* exec sql whenever sql_warning  sqlprint ; */
#line 15 "insupd.pgc"

    /* exec sql whenever sqlerror  sqlprint ; */
#line 16 "insupd.pgc"

    {
        ECPGdo(__LINE__,
            0,
            1,
            NULL,
            0,
            ECPGst_normal,
            "create table insupd_test ( a int , b int )",
            ECPGt_EOIT,
            ECPGt_EORT);
#line 18 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 18 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 18 "insupd.pgc"

    {
        ECPGdo(__LINE__,
            0,
            1,
            NULL,
            0,
            ECPGst_normal,
            "insert into insupd_test ( a , b ) values ( 1 , 1 )",
            ECPGt_EOIT,
            ECPGt_EORT);
#line 20 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 20 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 20 "insupd.pgc"

    {
        ECPGdo(__LINE__,
            0,
            1,
            NULL,
            0,
            ECPGst_normal,
            "insert into insupd_test ( a , b ) values ( 2 , 2 )",
            ECPGt_EOIT,
            ECPGt_EORT);
#line 21 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 21 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 21 "insupd.pgc"

    {
        ECPGdo(__LINE__,
            0,
            1,
            NULL,
            0,
            ECPGst_normal,
            "insert into insupd_test ( a , b ) values ( 3 , 3 ) returning a",
            ECPGt_EOIT,
            ECPGt_int,
            &(i4),
            (long)1,
            (long)1,
            sizeof(int),
            ECPGt_NO_INDICATOR,
            NULL,
            0L,
            0L,
            0L,
            ECPGt_EORT);
#line 22 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 22 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 22 "insupd.pgc"

    {
        ECPGdo(__LINE__,
            0,
            1,
            NULL,
            0,
            ECPGst_normal,
            "update insupd_test set a = a + 1 returning a",
            ECPGt_EOIT,
            ECPGt_int,
            (i3),
            (long)1,
            (long)3,
            sizeof(int),
            ECPGt_NO_INDICATOR,
            NULL,
            0L,
            0L,
            0L,
            ECPGt_EORT);
#line 24 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 24 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 24 "insupd.pgc"

    {
        ECPGdo(__LINE__,
            0,
            1,
            NULL,
            0,
            ECPGst_normal,
            "update insupd_test set ( a , b ) = ( 5 , 5 ) where a = 4",
            ECPGt_EOIT,
            ECPGt_EORT);
#line 25 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 25 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 25 "insupd.pgc"

    {
        ECPGdo(
            __LINE__, 0, 1, NULL, 0, ECPGst_normal, "update insupd_test set a = 4 where a = 3", ECPGt_EOIT, ECPGt_EORT);
#line 26 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 26 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 26 "insupd.pgc"
    ;

    {
        ECPGdo(__LINE__,
            0,
            1,
            NULL,
            0,
            ECPGst_normal,
            "select a , b from insupd_test order by a",
            ECPGt_EOIT,
            ECPGt_int,
            (i1),
            (long)1,
            (long)3,
            sizeof(int),
            ECPGt_NO_INDICATOR,
            NULL,
            0L,
            0L,
            0L,
            ECPGt_int,
            (i2),
            (long)1,
            (long)3,
            sizeof(int),
            ECPGt_NO_INDICATOR,
            NULL,
            0L,
            0L,
            0L,
            ECPGt_EORT);
#line 28 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 28 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 28 "insupd.pgc"

    printf("changes\n%d %d %d %d\n", i3[0], i3[1], i3[2], i4);
    printf("test\na b\n%d %d\n%d %d\n%d %d\n", i1[0], i2[0], i1[1], i2[1], i1[2], i2[2]);

    {
        ECPGdisconnect(__LINE__, "ALL");
#line 33 "insupd.pgc"

        if (sqlca.sqlwarn[0] == 'W')
            sqlprint();
#line 33 "insupd.pgc"

        if (sqlca.sqlcode < 0)
            sqlprint();
    }
#line 33 "insupd.pgc"

    return 0;
}
